// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>

// DbgHelp
#include <DbgHelp.h>

// RPC
#pragma comment(lib, "rpcrt4.lib")

// COM support
#pragma comment(lib, "comsuppw.lib")
#include <comip.h>
#include <comutil.h>

// STL
#include <memory>
#include <string>
#include <sstream>
#include <vector>

// boost
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>

// boost::python
#pragma warning(push)
// conditional expression is constant
#pragma warning(disable:4127)
// assignment operator could not be generated
#pragma warning(disable:4512)
// conversion from 'xxx' to 'yyy', possible loss of data
#pragma warning(disable:4244)
// unreferenced formal parameter
#pragma warning(disable:4100)
// alignment of a member was sensitive to packing
#pragma warning(disable:4121)
// default constructor could not be generated
#pragma warning(disable:4510)
// can never be instantiated - user defined constructor required
#pragma warning(disable:4610)
// inconsistent dll linkage
#pragma warning(disable:4273)

#define BOOST_PYTHON_STATIC_LIB
#define BOOST_PYTHON_NO_LIB
#include <boost/python.hpp>
#include <boost/python/object.hpp>
#include <boost/python/module.hpp>

#pragma warning(pop)

namespace python = boost::python;
